home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / comm / tcp / AmigaDynsCX.lha / AmigaDynsCX.rexx < prev   
OS/2 REXX Batch file  |  2001-05-23  |  2KB  |  73 lines

  1. /* $VER: AmigaDynsCX.rexx 1.0 (23-05-2001)
  2.  *
  3.  */
  4. PARSE ARG dyns
  5.  
  6. dynsUsername=''
  7. dynsPassword=''
  8. dynsHost=''
  9. dynsDomain=''
  10. dynsIP=''
  11. if pos('-u',dyns) > 0 then parse var dyns x'-u' dynsUsername x
  12. if pos('-p',dyns) > 0 then parse var dyns x'-p' dynsPassword x
  13. if pos('-h',dyns) > 0 then parse var dyns x'-h' dynsHost x
  14. if pos('-d',dyns) > 0 then parse var dyns x'-d' dynsDomain x
  15. if pos('-i',dyns) > 0 then parse var dyns x'-i' dynsIP x
  16. if dynsUsername='' then fehler2('no username given')
  17. if dynsPassword='' then fehler2('no password given')
  18. if dynsHost='' then fehler2('no hostname given')
  19.  
  20. cr = '0D'x
  21. lf = '0A'x
  22. crlf = cr || lf
  23.  
  24. IF ~Show('L', 'rxsocket.library') THEN
  25.     IF ~AddLib('rxsocket.library', 0, -30, 0) THEN
  26.         Abend('Could not open rxsocket.library')
  27. IF ~IsLibOn('SOCKET') THEN fehler('No TCP/IP stack running.')
  28.  
  29. socket = OpenConnection('TCP', 80, 'www.dyns.net')
  30. IF socket < 0 THEN fehler('Could not connect to server <www.dyns.net>.')
  31. CALL SetSockOpt(socket, 'SOCKET', 'RCVTIMEO', 60)
  32. msg = 'GET /postscript011.php?username='dynsUsername'&password='dynsPassword'&host='dynsHost'&domain='dynsDomain'&ip='dynsIP' HTTP/1.1'crlf,
  33.    || 'User-Agent: AmigaDynsCX.rexx 1.0'crlf,
  34.    || 'Host: www.dyns.net'crlf,
  35.    || crlf
  36.  
  37. IF send(socket, msg) ~= Length(msg) THEN fehler(ErrorString())
  38. call recvline(socket, 'LINE', 512)
  39. parse var line http ecode emessage
  40. if ecode~=200 then fehler('HTTP-Error:'ecode emessage)
  41.  
  42. do until line=''
  43.  call recvline(socket, 'LINE', 512)
  44.  line = Strip(line, 'T', '0D0A'x)
  45. end
  46.  call recvline(socket, 'LINE', 512)
  47.  call recvline(socket, 'LINE', 512)
  48.  line = Strip(line, 'T', '0D0A'x)
  49.  
  50. CALL CloseSocket(socket)
  51.  
  52. parse var line rcode rmessage
  53. if rcode='200' then say 'OK! 'rmessage
  54. else call fehler('Error:' rcode rmessage)
  55.  
  56. EXIT
  57.  
  58.  
  59. /** Error handling **/
  60. fehler: PROCEDURE
  61.     PARSE ARG reason
  62.     SAY '*** AmigaDynsCX.rexx error:' reason
  63.     EXIT 20
  64.  
  65. fehler2: PROCEDURE
  66.     PARSE ARG reason
  67.     SAY '*** AmigaDynsCX.rexx error:' reason
  68.     say 'usage: rx amigadyns.cx.rexx <-u USERNAME> <-p PASSWORD> <-h HOSTNAME> [-d DOMAIN] [-i IP]'
  69.     say
  70.     say 'example: rx AmigaDynsCX.rexx -u joe -p foo -h robinson -d dyns.cx -i 44.344.34.32'
  71.     say '     or: rx AmigaDynsCX.rexx -u joe -p foo -h robinson.dyns.cx -i 44.344.34.32'
  72.     say '     or: rx AmigaDynsCX.rexx -u joe -p foo -h robinson.dyns.cx'
  73. EXIT 20